package org.example.campusforum.dto;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 用户注册请求数据传输对象
 *
 * 用于接收用户注册请求的参数，包含注册所需的基本信息和验证码。
 * 通过邮箱验证码确保邮箱地址的有效性和用户身份的真实性。
 *
 * @author CampusForum Team
 * @version 1.0
 * @since 2024
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class UserRegister {

    /**
     * 用户邮箱地址
     * 作为用户名使用，必须是有效且未被注册的邮箱地址，必填字段
     */
    private String email;

    /**
     * 用户密码
     * 用户设置的登录密码，必填字段
     */
    private String password;

    /**
     * 用户昵称
     * 用户在论坛中显示的名称，必填字段
     */
    private String nickname;

    /**
     * 邮箱验证码
     * 发送到用户邮箱的验证码，用于验证邮箱有效性，必填字段
     */
    private String verificationCode;
}
